home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Business Shareware
/
Business Shareware.iso
/
start
/
gfxapps
/
hv12
/
hiview.doc
< prev
next >
Wrap
Text File
|
1992-07-22
|
10KB
|
222 lines
Hiview 1.2
A JPEG/GIF/TGA File Viewer
By Mohammad A. REZAEI
rezaei@upenn5.hep.upenn.edu
INTRODUCTION
Hiview is a freeware JPEG/GIF/TGA file viewer for video cards
with the TSENG 4000, ATI, TRIDENT 8900, AHEADA/B, Chips&Tech, Everex, Genoa,
Oak, Paradise,Tseng 3000, and Video 7 chipsets. The Hicolor mode on
TSENG cards is supported. The viewer centers the image and scales it down
to fit the screen, if necessary.
Please note that only the following modes will be used (only these
have square pixels!):
640x480x256
800x600x256
1024x768x256
640x480x32k (Tseng 4000 only)
800x600x32k (Tseng 4000 only)
The hicolor modes are much faster and you can see something happening
all the time. The 256 color modes must go through a quantization step
where the screen is blanked and nothing is displayed.
REQUIREMENTS
o 386 computer.
o A video card with one the chipsets mentioned above.
o VCPI environemnt
(i.e., the code won't work under MS Windows or OS/2)
If you would like to compile the code yourself, you will additionally require:
o djgpp (actually no C++ extensions necessary)
o Source code from version 3 of the Independent JPEG group
o The LIBGRX extensions to djgpp.
The JPEG source is available in many archives (wuacrvhie.wustl.edu,
simtel, etc.). djgpp and LIBGRX are available from barnacle.erc.clarkson.edu.
SETUP FOR THE VIEWER
As the code is compiled with djgcc, you need to set two environment
variables: GO32 and GO32TMP. GO32 lets go32 (the dj extender) know what
graphics driver to use, and GO32TMP is the place you would like the
temporary files to go (go32 swap directory). PLEASE NOTE: all directory
slashes must be forward slashes (ala UNIX) not back slashes.
For example, my settings are:
SET GO32TMP=c:/tmp
SET GO32=ansi driver c:/djgcc/contrib/libgrx/drivers/et4000.grn
If you don't setup these variables properly, the code will crash and burn!
In addition, if you don't have a 387, you need to add
emu <emu387 location>
to the GO32 environment variable,
where <emu387 location> is where you put the emu387 file.
For example, if you unpacked everything in c:\graphics, and you have
a paradise video card with no 387, you would do:
SET GO32=ansi driver c:/graphics/paradise.grd emu c:/graphics/emu387
Please do not add any extra spaces to the above.
After this setup, you can run hiview. It will look in the current directory
for files matching *.jpg, *.gif and *.tga.
TROUBLESHOOTING
There have also been reports about some incompatibilities with himem/emm386.
Try removing these from your config.sys and rerun hiview, if you experience
any segmetation faults. I recommend using QEMM or 386MAX as a memory manager.
Make sure you have setup the environment variables properly. Use "/" in
the directory names, not "\".
COMMAND LINE OPTIONS
With no command line options, hiview will look in the current directory
for files matching *.jpg, *.gif and *.tga.
You can include file specifications on the command line. The viewer expects
that the file extension specify the file type, but you can override this with
the -j, -g and -t flags for JPEG, GIF and TARGA respectively.
So, if for some reason you have a file called "pic.jpg" which is actually
a GIF file, you can view it with "hiview -g pic.jpg".
Please note that any file specification appearing after these flags will
be expected to be of that type, so "hiview -g pic1.gif pic2.tga" will think
pic2.tga is a GIF file. To get the correct result, you can use
"hiview pic2.tga -g pic1.gif" or "hiview -g pic1.gif -t pic2.tga".
The following flags toggle the desired effect:
-h Hicolor mode, default is on.
-b Block smoothing, default is off.
-p Pixel smoothing, default is off.
-s <gamma> Gamma specification, default is 1.0, values between 0.1 and 2.0
are usually used.
-i Linear interpolation, default is on. (24->15 bit only)
This helps alot if the scaling ratio (image/screen) is between
1 and 2. It doesn't help much if scaling ratio is above 2
-d Floyd-Steinberg dithering, default is off for 15 bit and on for 8 bit
displays modes. Helps significantly with some images with smooth
shaded regions.
-w Start slide show of available files. Waits for key press between
images.
-W <time in seconds> Start slide show of images, and wait specified time
between images.
-q 24->8 bit quatization, one pass or two pass, default is one pass.
-T Measure how long it took to display the image.
All the above can be changed interactively from the menus.
USING HIVIEW INTERACTIVELY
Once the filenames are displayed, you can use the arrow keys
to choose the file to be displayed. Pressing "O" gets you to the options
menu.
You can also select several images to be shown one after another.
Pressing SPACE select/deselect images. Images are displayed in order listed
(not selected). After selecting the images, press RETURN to start the slide
show. Unless you have specified otherwise (through the command line or
options menu) the program will wait for a keypress between images.
COPYRIGHTS AND SUCH
The source code for the viewer is included with the distribution.
I have written most of the code in viewer.c, which is based on example.c of
the JPEG distribution. This code is distributed with the same intentions and
policies as the Independent JPEG group software. However, please note the
copyrights and distribution policies of the portion of the code that is
from any other source. This includes the djgpp stuff (the prepended
go32 to hiview.exe, the 387 emulator), the LIBGRX drivers and the JPEG
files distributed with the code. So please read COPYING and COPYING.DJ,
COPYING.GRX and README.IJG.
DESIGN INTENTIONS
The code is intended to be as fast as possible with a user
friendly interface and lots of options. Admitedly, the code is rather
ugly in this initial release.
I strongly encourage additions and modifications to my code.
However, to keep the distribution uniform, I would like to be the sole
distributor of the viewer "hiview". So please send me your suggestions, and
modifications. I can be reached as rezaei@upenn5.hep.upenn.edu until
August 15, 1992. (I will have a different address after that.) If you intend
to do any modifications, please read todo.doc.
BUGS AND LIMITATIONS
The viewer can't deal with a directory as a command line parameter.
It can however deal with wildcards, so "hiview \pics" won't work, whereas
"hiview \pics\*.jpg" will. Same is true for drive names: "hiview a:" is
not supported, but "hiview a:*.*" is.
The viewer cannot handle files larger than 4096x4096, but this
can be easily changed by recompiling.
You cannot display TARGA files in 8 bit mode (yet). Trying this
will result in strange behaviour.
Colormaped TARGA files are not supported.
The ATI and TRIDENT modes are untested.
Please see the todo.doc file for planned solutions to the above and
improvements to be incorporated into the next release of the program.
-T option does not work well in slide show mode.
HISTORY
7/6/92 version 1.0, initial release. Special thanks go to Bruce (bs@mda.ca)
7/7/92 version 1.1, now two executables, hiview.exe and jview.exe exist
hiview handles Tseng 4000, Ati and Trident 8900 chipsets.
jview handles the rest. Eventually, only hiview should exist.
On setups with no 387, there should be a significant speedup.
modified files: makefile.*
viewer.h
viewer.c
hiview.exe
hiview.doc
todo.doc
new files: jview.exe
*.grd (old graphics drivers)
src/mkjview.lst
7/22/92 version 1.2. jview.exe no longer exists. hiview can use all cards.
this version is 10-20% faster than 1.1. It also eliminates the
initialization delays on machines with no 387. There is a primitive
slide show mode, and you can view pictures from the command line
(-w and -W switches). There is a 486-optimized executable: hiview4.exe
which is about 5% faster than it's 386 cousin on a 486. It will
actually run on a 386, but slower. Dithering is now a global option
(and faster). -T option will show how long it took for an image
to display.
modified files:
makefile
makefile.opt
mkhiview.lst
viewer.c
viewer.h
dither.c
hiview.exe
hiview.doc
readme.txt
todo.doc
new files:
range.c
jquant1.c
jquant2.c
makefile.486
hiview4.exe
jdcolor.c
jdmcu.c
rangecalc.c
mypow.c
mypow.h
logcalc.c
jversion.h
jconfig.h